//引入express模块
const express = require("express")
//引入router模块
const router = express.Router()

//引入db数据库
const db = require("../db/db.js")
//引入模板
const ImgModel = require("../model/ImgModel.js")
const HistoryModel = require("../model/HistoryModel.js")
//创建路由API接口
db(() => {
    // 获取图片列表接口，支持分页
    router.get("/img", async (req, res) => {
        // 查询总记录数
        const total = await ImgModel.countDocuments();
        const page = req.query.page || 1; // 从查询参数获取页码，默认第一页
        const perPage = 10; // 每页数据条数

        try {
            const data = await ImgModel.find()
                .sort('id') // 按照 id 排序
                .skip((page - 1) * perPage)
                .limit(perPage);

            res.json({
                code: "0000",
                msg: "获取数据成功",
                data: data,
                total: total
            });
        } catch (err) {
            console.error("Error fetching images:", err);
            res.json({
                code: "3000",
                msg: "获取数据失败",
                data: null
            });
        }
    });
    //创建消息列表API接口
    router.post("/img", (req, res) => {

        console.log("req.body", req.body)
        // const imgMsg = JSON.parse(req.body)
        ImgModel.create({
            ...req.body
        }).then((data, err) => {
            if (err) {
                res.json({
                    code: "3001",
                    msg: "创建数据失败",
                    data: null
                })
                return
            }
            res.json({
                code: "0000",
                msg: "创建数据成功",
                data: data
            })
        })
    })
    // 删除图片接口
    router.delete("/img/:id", (req, res) => {
        const id = req.params.id; // 使用 req.params 获取路由参数
        ImgModel.deleteOne({ _id: id })
            .then(data => {
                res.json({
                    code: "0000",
                    msg: "删除数据成功",
                    data: data
                });
            })
            .catch(err => {
                console.error("Error deleting image:", err);
                res.json({
                    code: "3002",
                    msg: "删除数据失败",
                    data: null
                });
            });
    });

    // 更新消息列表API接口
    router.put("/img", (req, res) => {
        const { _id, ...updateData } = req.body;
        ImgModel.findByIdAndUpdate(_id, updateData, { new: true }).then((data, err) => {
            if (err) {
                res.json({
                    code: "3003",
                    msg: "更新数据失败",
                    data: null
                });
                return;
            }
            res.json({
                code: "0000",
                msg: "更新数据成功",
                data: data
            });
        });
    });

    // 获取历史列表 API 接口
    router.get("/history", (req, res) => {
        const query = req.query; // 使用 req.query 获取查询参数
        HistoryModel.find(query)
            .then(data => {
                res.json({
                    code: "0000",
                    msg: "获取数据成功",
                    data: data
                });
            })
            .catch(err => {
                console.error("Error fetching history:", err);
                res.json({
                    code: "3000",
                    msg: "获取数据失败",
                    data: null
                });
            });
    });

    //创建历史列表API接口
    router.post("/history", (req, res) => {
        HistoryModel.create({
            ...req.body
        }).then((data, err) => {
            if (err) {
                res.json({
                    code: "3001",
                    msg: "创建数据失败",
                    data: null
                })
                return
            }
            res.json({
                code: "0000",
                msg: "创建数据成功",
                data: data
            })
        })
    })
})

module.exports = router